package com.cy.pj.sys.service.impl;

import java.util.List;

import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.cy.pj.common.exception.ServiceException;
import com.cy.pj.common.vo.PageObject;
import com.cy.pj.sys.dao.BasePageDao;
import com.cy.pj.sys.dao.SysLogDao;
import com.cy.pj.sys.entity.SysLog;
import com.cy.pj.sys.service.SysLogService;

import lombok.extern.slf4j.Slf4j;

@Service
@Slf4j
public class SysLogServiceImpl extends BasePageServiceImpl<SysLog> implements SysLogService {

//	@Autowired
	private SysLogDao sysLogDao;
	
	@Autowired
	public SysLogServiceImpl(SysLogDao sysLogDao) {
		super(sysLogDao);
		this.sysLogDao=sysLogDao;
	}

	
//	@Override
//	public PageObject<SysLog> findPageObjects(String username, Integer pageCurrent) {
//		if (pageCurrent==null||pageCurrent<1) {
//			throw new IllegalArgumentException("当前页码不正确");
//		}
//		
//		int rowCount = sysLogDao.getRowCount(username);
//		log.info("查询总记录数："+rowCount);
//		if (rowCount==0) {
//			throw new ServiceException("系统没有查到对应记录");
//		}
//		
//		int pageSize=5;
//		int startIndex=(pageCurrent-1)*pageSize;
//		List<SysLog> records = sysLogDao.findPageObjects(username, startIndex, pageSize);
//		
//		PageObject<SysLog> pageObject=new PageObject<>();
//		pageObject.setPageCurrent(pageCurrent);
//		pageObject.setRecords(records);
//		pageObject.setPageSize(pageSize);
//		pageObject.setRowCount(rowCount);
//		pageObject.setPageCount((rowCount-1)/pageSize+1);
//		
//		return pageObject;
//	}
	
	@RequiresPermissions("sys:log:delete")
	@Override
	public int deleteObjects(Integer... ids) {
		if(ids==null||ids.length==0) {
			throw new IllegalArgumentException("请选择一个");
		}
		int rows;
		try {
			rows=sysLogDao.deleteObjects(ids);
			log.info("删除总记录数："+rows);
		} catch (Throwable e) {
			e.printStackTrace();
			throw new ServiceException("系统故障，正在恢复中……");
		}
		if (rows==0) {
			throw new ServiceException("记录可能已经不存在");
		}
		
		return rows;
	}

}
